<?php
namespace payClass\pay;

/**
 * 商户配置
 */
class Config
{

    // 当前文件夹名
    public static $folder;
    // 商户号
    public static $merchant = '06130218905';
    // 密钥
    public static $key = 'E3B329FE54B6F289F87601D5B0459EC8380B8C25AE1F6B5D';
    // 同步回调（通知）地址
    public static $merUrl;
    // 异步回调（通知）地址
    public static $notifyUrl;

    function __construct()
    {
        self::$folder    = substr(__DIR__, strrpos(__DIR__, '\\')+1);
        self::$merUrl    = 'http://'.$_SERVER['HTTP_HOST'];
        self::$notifyUrl = self::$merUrl . DIRECTORY_SEPARATOR . 'payClass' . self::$folder . DIRECTORY_SEPARATOR . 'sycNotice.php';
    }

    public static function getSign($Parm,$Key){
        $prestr = self::CreateLinkstring($Parm);        //把数组所有元素，按照“参数=参数值”的模式用“&”字符拼接成字符串
        $prestr .= "&key=".$Key;                 //拼接上密钥
        echo "签名源串：".$prestr.'<br>';
        $mysgin = md5($prestr);                         //把最终的字符串签名，获得签名结果
        return $mysgin;
    }

    public static function CreateLinkstring($array){
        $arg  = "";
        while (list ($key, $val) = each ($array)){
            if($val !=''){
                 $arg.=$key."=".$val."&";
            }
        }
        $arg = substr($arg,0,count($arg)-2);             //去掉最后一个&字符
        return $arg;
    }

    //发送请求
    public static function post($PostArry,$request_url){
        //echo "发送地址：",$request_url,"\n";
        $postData = $PostArry;
        $postDataString = http_build_query($postData);//格式化参数

        //Log::LogWirte("[请求地址]:".$request_url.", [请求参数]:".$postDataString);
        //die();
        $curl = curl_init(); // 启动一个CURL会话
        curl_setopt($curl, CURLOPT_URL, $request_url); // 要访问的地址
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $postDataString); // Post提交的数据包
        curl_setopt($curl, CURLOPT_TIMEOUT, 60); // 设置超时限制防止死循环返回
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

        $tmpInfo = curl_exec($curl); // 执行操作
        if (curl_errno($curl)) {
            $tmpInfo = curl_error($curl);//捕抓异常
        }
        curl_close($curl); // 关闭CURL会话
        return $tmpInfo; // 返回数据
    }
}